package com.ruoyi.common.constant;

public class CommonConstant {

    // 正则表达式： 密码强度. 大写字母、小写字母、数字、特殊符号 必须满足3种及3种以上
    public static final String REGEX_PASSWORD = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z!@#$%^&*`·~()-+=]+$)(?![a-z0-9]+$)(?![a-z!@#$%^&*`·~()-+=]+$)(?![0-9!@#$%^&*`·~()-+=]+$)[a-zA-Z0-9!@#$%^&*`·~()-+=]{6,20}$";

    // 正则表达式： 手机号
    public static final String REGEX_PHONE = "^1[3-9]\\d{9}$";

    // 正则表达式： 邮箱
    public static final String REGEX_EMAIL = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";

    // 正则表达式： 身份证
    public static final String REGEX_ID_CARD = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";

    // 正则表达式： 统一社会信用代码
    public static final String REGEX_SOCIAL_CREDIT_CODE = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$";

    // 正则表达式： 脱敏身份证号
    public static final String REGEX_SENSITIVE_ID_CARD = "(\\d{6})(\\d{8}|\\d{5})(\\d{4}|\\d{3}[0-9Xx])";

    // 正则表达式： 脱敏手机号
    public static final String REGEX_SENSITIVE_PHONE = "(\\d{3})(\\d{4})(\\d{4})";

    // 正则表达式： 去除字符串中的字母及左补齐的0. 如：A000011 替换后输出 11
    public static final String REGEX_EXTRACT_NUMBERS = "^[A-Za-z]*0*";

    /**
     * 正则表达式：车牌号格式
     */
    public static final String CAR_NUMBER_REGEX = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$";


    public static final String CHAR_UPPERCASE = "ABCDEFGHJKLMNPQRSTUVWXYZ";

    public static final String CHAR_LOWERCASE = "abcdefghjkmnpqrstuvwxyz";

    public static final String CHAR_NUMBER = "0123456789";

    public static final String CHAR_SPECIAL = "~!@#$^%&*-+?";

    public static final String CHAR_NORMAL = CHAR_UPPERCASE + CHAR_LOWERCASE + CHAR_NUMBER;

    public static final String CHAR_ALL = CHAR_UPPERCASE + CHAR_LOWERCASE + CHAR_NUMBER + CHAR_SPECIAL;


    /**
     * 超级管理员
     */
    public static final Long ADMIN_DEPT_ID = 100L;


    public static final String CLOUD_DIGITAL_CODE_FORMAT = "MA.156.10033.6/%s.%s/%s";


    // 用户编号前缀
    public static final String WX_USER_NO_PREFIX = "UDA00";


    // Access_Token有效期. 单位:秒. 不能超过7200秒
    public static final Integer WECHAT_ACCESS_TOKEN_EXPIRE = 6300;


    /**
     * 微信支付-商品描述内容长度
     */
    public static final int DESC_LENGTH = 127;


}
